from selenium.webdriver.common.by import By

from base.admin.admin_base_page import AdminBasePage

"""
新增页面的时候：
1.要先修改对象层：添加查询页面的方法
2.修改操作层：对象元素.click()
3.修改业务层：打开目标页面的时候操作流程
"""


#

# 对象层
class HomePage(AdminBasePage):
    def __init__(self):
        super().__init__()
        self.shop_page = (By.LINK_TEXT, "商城")
        self.cate_page = (By.XPATH, '//*[text()="商品分类"]')
        self.goods_list = (By.XPATH, "//*[text()='商品列表']")

    def find_shop_link(self):
        return self.find_elem(self.shop_page)

    def find_cate_link(self):
        return self.find_elem(self.cate_page)

    # 新增商品列表
    def find_goods_list(self):
        return self.find_elem(self.goods_list)


# 操作层
class HomeHandle:
    # 定位的元素
    def __init__(self):
        self.home_page = HomePage()

    # 点击商城
    def click_shop_link(self):
        self.home_page.find_shop_link().click()

    # 点击商品分类
    def click_cate_link(self):
        self.home_page.find_cate_link().click()

    # 点击商品列表
    def click_goods_list(self):
        self.home_page.find_goods_list().click()


# 业务层
class HomeProxy:
    # 实例化操作层
    def __init__(self):
        self.home_handle = HomeHandle()

    # 进入到商品分类页面
    def to_shop_cate(self):
        self.home_handle.click_shop_link()
        self.home_handle.click_cate_link()

    # 进入商品列表
    def to_goods_list(self):
        # 点击商城按钮
        self.home_handle.click_shop_link()
        # 点击商品列表按钮
        self.home_handle.click_goods_list()
